Skip to content

Conversation

@mengelbart
Copy link
Contributor

@mengelbart mengelbart commented Oct 15, 2025

Alternative but cleaner implementation for congestion control feedback receiver (#300). The main difference between this and #300 is that #300 organizes the feedback per stream, while this version organizes it as a single linear stream, which is easier to process. If one still needs to know which stream a packet was sent on, that information is still included in the reports for each packet.

@codecov
Copy link

codecov bot commented Oct 15, 2025

Codecov Report

❌ Patch coverage is 79.67213% with 62 lines in your changes missing coverage. Please review.
✅ Project coverage is 79.71%. Comparing base (1209fc9) to head (82ff788).

Files with missing lines Patch % Lines
pkg/rtpfb/interceptor.go 77.50% 21 Missing and 6 partials ⚠️
pkg/rtpfb/twcc_receiver.go 69.11% 21 Missing ⚠️
pkg/rtpfb/history.go 81.81% 9 Missing and 5 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #374      +/-   ##
==========================================
+ Coverage   79.62%   79.71%   +0.09%     
==========================================
  Files          84       88       +4     
  Lines        4181     4486     +305     
==========================================
+ Hits         3329     3576     +247     
- Misses        680      729      +49     
- Partials      172      181       +9     
Flag Coverage Δ
go 79.71% <79.67%> (+0.09%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mengelbart mengelbart force-pushed the feat/rtpfb-receiver-2 branch 6 times, most recently from 0912350 to ceaeb98 Compare October 18, 2025 21:49
@mengelbart mengelbart marked this pull request as ready for review October 18, 2025 21:51
Copy link
Member

@JoeTurki JoeTurki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just two fast comments / nits, I'll read the RFC again and will actually review :)

}
}

return referenceTime.Sub(latestArrival), result
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What will happen if latestArrival is never set? shouldn't we return 0, nil?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, I think we should initialize latestArrival as latestArrival = referenceTime. That way it will be 0 if it is there were no packets received after the reference time.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, this doesn't work because we are actually looking for the latest arrival before the referenceTime. So you're right, we have to add a check and return 0.

@mengelbart mengelbart force-pushed the feat/rtpfb-receiver-2 branch from 5d878ee to e2d4aff Compare December 1, 2025 16:14
@mengelbart mengelbart force-pushed the feat/rtpfb-receiver-2 branch from e2d4aff to 82ff788 Compare December 3, 2025 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants